package com.ht.api.call.func.impl.opstasks;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.ht.api.bean.AjaxResult;
import com.ht.api.bean.LoginBean;
import com.ht.api.call.func.IFunctionCall;
import com.ht.api.db.Db;
import com.ht.api.db.DbConfig;
import com.ht.api.db.Entity;
import com.ht.api.db.task.HtTaskExecutor;
import com.ht.api.db.util.HtUtil;
import com.ht.api.task.OpsTasksInitTask;
import com.ht.api.task.TagInitTask;
import com.ht.api.util.UserUtil;

import javax.sql.DataSource;

/**
 * 初始化运营任务
 */
public class OpsTaskInitFunctionCall implements IFunctionCall {

	@Override
	public String getName() {
		return "初始化运营任务";
	}

	@Override
	public JSONObject execute(LoginBean me, JSONObject param, AjaxResult result) {
		// 获取租户ID,并创建ds

		String opsTaskId = param.getStr("main_id");

		Entity opsTask = Entity.create("ops_tasks");
		opsTask.setMainId(opsTaskId);
		opsTask.set("init_status", 1);
		Db.insert(me.getDataSource(), opsTask);

		HtUtil.createLog(me.getDataSource(), opsTaskId, "开启初始化！");

		JSONObject taskParam = JSONUtil.createObj();
		taskParam.set("tenant_id", me.getTenantId());
		taskParam.set("main_id", opsTaskId);
		taskParam.set("user_id", me.getLoginIdStr());
		HtTaskExecutor.submitTask(taskParam, new OpsTasksInitTask());

		// 返回客户端信息：已开启标签初始化，请稍后查看.
		return JSONUtil.createObj().set("info", "已开启运营任务初始化，请稍后查看.");
	}

}
